rEFInd est un utilitaire qui crée une interface graphique de démarrage permettant, à l'instar de GRUB, de démarrer différents systèmes.
Comme son nom l'indique, rEFInd n'est compatible qu'avec les ordinateurs disposant d'un EFI. Si votre ordinateur est ancien, son BIOS classique ne supportera pas rEFInd, et vous devrez vous contenter de GRUB.
Les nombreuses spécificités des systèmes EFI rendent rEFInd puissant, personnalisable, et installable depuis de nombreux OS. Son gros avantage par rapport à grub est qu'il détecte automatiquement les systèmes d'exploitation au démarrage. Ainsi, il n'y a plus de problème de configuration.
Le remplacement de grub par rEFInd est une solution qui apportera une présentation graphique avec la possibilité d'un choix tactile pour certains écrans.
L'installateur a parfaitement installé Ubuntu, mais il a lamentablement échoué à installer le grub EFI signé. L'installation de REFIND peut alors être une alternative pratique pour booter de façon plus aisée que les autres techniques. Voici comment installer refind en complément du grub dans ce contexte particulier.
Booter avec le support d'installation, choisir d'essayer avant d'installer, ouvrir une session, mettre le clavier en français et frapper quelques commandes pour télécharger le logiciel non présent dans le support d'installation:
sudo add-apt-repository "deb http://archive.ubuntu.com/ubuntu $(lsb_release -sc) universe" sudo apt update sudo apt install refind
Accepter l'installation des paquets efibootmgr et refind.
Refuser d'installer refind dans la partition ESP. Ce n'est pas la peine qu'il reçoive la même fin de non-recevoir que le grub de la part du bios EFI. Il faudra donc positionner le curseur sur Non avant de valider.
Installer manuellement le logiciel dans la structure de boot standard avec ces commandes:
sudo mount -v $(sudo blkid | grep vfat | cut -d: -f1) /mnt # Monter la partition de boot ESP. sudo cp -rv /usr/share/refind/* /mnt/EFI/boot # Installer refind dans le répertoire de boot. sudo cp -v /mnt/EFI/refind/refind_x64.efi /mnt/EFI/Boot/bootx64.efi # Dire qu'il devient le fichier de boot officiel. exit
Il peut être intéressant de disposer de rEFInd sur une clé USB. Cette clé USB pourra alors aller inspecter les ordinateurs EFI à la recherche d'OS déjà installés mais incapable de démarrer. C'est une solution alternative à SG2D pour les cas simples.
Sur un ordinateur de travail sachant démarrer sans rEFInd qui peut être celui de l'installation, faire le travail de préparation de l'installation.
mount | grep media. Elle doit être trouvée montée sur /media/ubuntu/XXXX-XXXX/ (XXXX-XXXX est l'identifiant de la clefs usb). Si elle n'est pas visible, débranchez la clé USB, attendez 10 secondes, rebranchez-la, attendez 10 secondes, refaite la commande ci-dessus. Elle devrait alors être visible. Par la suite les commandes doivent être modifiées pour que le chemin vers votre clé corresponde au nom de votre clé.sudo cp -rv /usr/share/refind/refind/* /media/ubuntu/XXXX-XXXX/EFI/boot
/media/ubuntu/XXXX-XXXX/EFI/boot/refind.conf-sample vers /media/ubuntu/XXXX-XXXX/EFI/boot/refind.conf/media/ubuntu/XXXX-XXXX/EFI/boot/refind.conf afin d'améliorer la présentation si vous le souhaitez.
Cependant, il est impératif d'ajouter le paramètre also_scan_dirs EFI/boot car par défaut, le répertoire contenant rEFInd n'est pas examiné. Dans ce contexte particulier, il contient aussi grubx64.efi qu'il est nécessaire de choisir pour faire l'installation.
sudo cp -v /media/ubuntu/XXXX-XXXX/EFI/boot/refind_x64.efi /media/ubuntu/XXXX-XXXX/EFI/boot/BOOTx64.efi
sudo shutdown now par exemple)Il ne reste plus qu'à aller sur l'ordinateur cible ne sachant pas booter de façon standard et à booter avec cette clé USB puis faire l'installation.
mount | grep media
sudo blkid | grep vfat
sudo mount -v /dev/sdXN /mnt
sudo mkdir -p /mnt/EFI/REPERTOIRE
Le nom peut être Refind ou Boot ou Microsoft/Boot suivant le besoin.
sudo cp -Rv /media/ubuntu/XXXX-XXXX/EFI/BOOT/* /mnt/EFI/REPERTOIRE
sudo efibootmgr --create --disk /dev/sdX --part N --label "Mettre le nom voulu" --loader "\EFI\REPERTOIRE\grubx64.efi"
sudo efibootmgr -v
shutdown now
La version 32 bits est parfois nécessaire pour faire démarrer des ordinateurs vendus à petit prix : certains ont un EFI en 32 bits bien qu'ils soient capables d'exécuter des applications 64 bits. Cette procédure va considérer que l'installation se fait avec un support d'installation Xenial ou Bionic.
Il peut être intéressant de disposer de rEFInd sur l'ordinateur cible avant d'installer ubuntu. Cette installation mettra rapidement en évidence que l'ordinateur est capable de gérer le dual boot de façon standard ou qu'il faut s'attendre à des ennuis pour faire fonctionner un dual boot. Ce qui permet de conserver un windows opérationnel le temps de mettre en place le mécanisme.
Un message propose d'installer directement dans la partition ESP d'un disque dur. C'est plus simple d' accepter!
Il faut maintenant identifier cette partition ESP
sudo blkid | grep vfat
Exemple de réponse: /dev/sda1: UUID="1042-95CF" TYPE="vfat" PARTLABEL="EFI System Partition" PARTUUID="aaaaaaaa-bbbb-dddd-fffff-eeeeeeeeeeee"
Avec cette réponse, le NomDuDisque sera sda et le N°DeLapartition sera 1
Certains EFI utilisent seulement le fichier de boot standard. Ce fichier va être systématiquement modifié même si cela est le plus souvent inutile. C'est l'équivalent de la séquence "fix-windows-boot" du logiciel "boot-repair".
sudo mount -v /dev/XXXXXX /mnt
sudo mv -v /mnt/efi/Boot/bootx64.efi /mnt/efi/Boot/Bootx64$(date +"-%Y-%m-%d-%H-%M-%S").efi
sudo cp -Rv /mnt/efi/refind/* /mnt/efi/Boot
sudo cp -v /mnt/efi/Boot/refind_x64.efi /mnt/efi/Boot/bootx64.efi
Il faut maintenant fabriquer l'entrée de boot dans la NVRAM qui n'a pas été faite.
sudo efibootmgr -c -d /dev/NomDuDisque -p N°DeLaPartition -L "Refind" -l "\EFI\refind\refind_x64.efi" sudo efibootmgr -v
Au boot suivant rEFInd va diriger la manœuvre si le système EFI n'est pas en mode secure. Il sera alors possible d'installer ubuntu en ayant une bonne certitude que le dual boot fonctionnera au besoin en déactivant le mode secure pour se tirer d'affaire.
Il est possible d'installer rEFInd depuis Windows. Il est d'abord nécessaire de télécharger la version "ZIP" disponible pour Windows., puis il faut dézipper le fichier.
C:/Utilisateurs/xxxxxxxxx/Téléchargements/refind-bin-0.11.4/refind-bin-0.11.4mountvol S: /S
xcopy /E refind S:\EFI\refind\
cd S:\EFI\refind
dir
À ce stade, il y a normalement divers dossiers avec des drivers, et un exemple de fichier de paramétrage, que l'on va utiliser tel quel pour paramétrer rEFInd :
copy refind.conf-sample refind.conf
bcdedit /copy '{current}' /d 'Refind'
Cette commande va retourner un identifiant (le GUID) qu'il faudra copier.
bcdedit /set '{GUID}' path \EFI\refind\refind_???.efi
Les guillemets simples et les accolades font bien partie de la commande.
bcdedit /bootsequence '{GUID}' /addfirst
Le principe est soit de faire un CD-ROM, soit de faire une clé USB en utilisant un package qui contient ce qu'il faut afin de disposer d'un logiciel de boot permettant de détecter les O.S. installés dans un ordinateur EFI comme sait le faire super grub2 disk et éventuellement créer une partition de boot EFI si le disque n'en possède pas puis ajouter le logiciel refind dans la partition de boot EFI. Voici les étapes:
Le secure boot (parfois appelé "mode sécurisé" dans la suite de cette page) est une protection pour compliquer l'accès à l'EFI et sa modification. Il peut généralement être désactivé.
La doc officielle à ce sujet. Il est possible d'utiliser un installateur nouvelle version non encore disponible dans les distributions ubuntu. Le script est testé avec succès en version 21.04. Il fait aussi booter la version 20.10, la version 20.04 et probablement d'autres plus anciennes. Il est récupérable par copier dans le forum.
Après avoir mis en place rEFInd dans une partition de boot soit d'un disque interne (voir installation de refind par windows), soit d'une autre clé USB ne contenant que rEFInd, soit de la même clé contenant aussi rEFInd et préparé votre clé USB bootable, branchez la clé USB si elle ne l'est pas.
Demander à refind de se rafraîchir en appuyant sur la touche ECHAP du clavier.
Patienter quelques dizaines de secondes qui est le temps nécessaire pour que rEFInd inspecte les supports physiques de l'ordinateur.
Se positionner sur la première icône stylisée comme étant un manchot et vérifier le fichier qu'il propose de booter. Si le fichier a comme nom /EFI/Boot/Bootx64.efi, appuyer sur l'icône pour valider le boot. Sinon passer à l'icône suivante.
Faire l'installation. Au boot suivant, rEFInd saura proposer ubuntu sous forme d'icône de couleur orange avec des cercles.
Au démarrage, rEFInd inspecte les partitions des disques internes.
Pour que ubuntu soit détecté facilement, il est nécessaire qu'il soit installé dans une partition ext4 ( btrfs est cependant possible) et que l'installateur de ubuntu ait fabriqué des fichiers de boot ressemblant à ces noms.
/boot/initrd.img-N.N.N-N-genericxxxxx /boot/vmlinuz-N.N.N-N-genericxxxxx
L'icône symbolisant ubuntu est de couleur orange. Il faut appuyer sur l'icône pour lancer le boot du dernier noyau.
Il faut appuyer sur la touche F2 pour avoir la liste des noyaux. Avec les touches de positionnement on peut choisir une ligne de la liste. Puis appuyer sur Entrée pour valider le démarrage s'il n'y a pas besoin de la modifier, sinon:
Il faut encore appuyer sur la touche F2 pour modifier la commande de boot lorsqu'on a besoin de transmettre une modification souvent du style nomodeset recovery etc.. et valider par Entrée.
Il est aussi possible de consulter ce document
Il est aisé de modifier l'os du prochain reboot en utilisant la commande Efibootmgr, qui est un gestionnaire de l'amorçage UEFI.
Comme vous avez décidé de vous affranchir de GRUB, vous pouvez éviter qu'il recherche les OS et qu'il se mette à jour en entrant les trois commandes Suivantes
sudo chmod -x /etc/grub.d/30_os-prober sudo chmod -x /usr/sbin/grub-install sudo chmod -x /etc/kernel/postinst.d/zz-update-grub
Puisque vous avez décidé de ne plus utiliser GRUB, vos prochaines installations d'Ubuntu risquent de détruire le boot rEFInd si vous ne faites rien. Pour éviter cette situation, la solution est de détruire ou renommer shimx64.efi directement dans le support d'installation. Ce fichier est stocké à l'adresse suivante: /pool/main/s/shim-signed/shim-signed_xxxxxxxxxxxxxxxxxxx_amd64.deb
Vous pouvez préférer supprimer GRUB complètement (ça évite des mises à jour inutiles par la suite) :
sudo apt purge grub-common grub-efi-amd64
Un fichier de paramétrage de référence est fourni et indique les valeurs retenues par défaut.
Pour changer une valeur, il est nécessaire de fabriquer le vrai fichier de référence.
sudo cp /boot/efi/EFI/refind/refind.conf-sample /boot/efi/EFI/refind/refind.conf
Il est aussi possible que ce fichier se trouve sur la partition EFI, qu'il faut donc monter puis naviguer jusqu'au fichier.
Si vous lisez le contenu du fichier /boot/efi/EFI/refind/refind.conf, vous constaterez qu'il y a de quoi avoir quelques "headhaches" car il n'est pas écrit en français.
timeout 30
Vous pouvez le modifier et vous pouvez aussi ajouter immédiatement après quelques options telles que les suivantes:
small_icon_size 32 big_icon_size 64
enable_mouse
dont_scan_volumes "WindowsRecovery"
Assurez-vous que le nom de cette partition est bien celle indiquée.
dont_scan_dirs ESP:/EFI/boot,EFI/Dell,EFI/memtest86
Assurez-vous que les répertoires indiqués ont du sens dans votre cas : l'exemple de Dell ne vaut que pour les machines Dell !
dont_scan_files shimx64.efi,MokManager.efi,fwupx64.efi,mmx64.efi,bootmgr.efi,bkpbootx64.efi,grubx64.efi,bootx64.efi,memtest.efi
Cette commande permet de ne pas afficher ces programmes s'ils sont présents dans les partitions FAT32.
fold_linux_kernels false
Vous pouvez avoir une liste très importante qu'il est possible de réduire en entrant la commande sudo apt autoremove
Il est donc possible d'avoir une présentation épurée ressemblant à cela.
Le contexte retenu est une partition racine chiffrée et une partition de boot au format EXT2 ou EXT4 en version 18.04.1 car le formatage EXT2 ou EXT3 n'existe plus.
La clé de chiffrement retenue a été choisie pour avoir des caractères compatibles aux claviers QWERTY et AZERTY.
Refind détecte automatiquement la partition EXT2 et lance l'initialisation de la partition RACINE comme si elle était dans la même partition. Cela ne fonctionne donc pas. Il va donc être nécessaire de fournir un peu de paramétrage permettant de dire que c'est une installation chiffrée et que la partition racine est ailleurs. Ce n'est pas très compliqué.
Le nom du fichier est refind_linux.conf et il est stocké au premier niveau de la partition de boot directement sous la racine /boot. Il faut récupérer le UUID de la partition enveloppe de la racine (sudo blkid | grep LUKS) ainsi que le nom logique de la partition contenant la racine ( sudo fdisk -l | grep mapper ). Les deux lignes à mettre dans le fichiers seront de ce style
"Boot standard" "crypt_root=2721a6bb-36c5-4d4c-a604-2f7db99d1f87 root=/dev/mapper/sdb2_crypt ro quiet splash vt.handoff=7"
"Boot RECOVERY" "ro recovery nomodeset crypt_root=2721a6bb-36c5-4d4c-a604-2f7db99d1f87 root=/dev/mapper/sdb2_crypt"
"Boot with minimal options" "ro root=/dev/mapper/sdb2_crypt"
Cependant, si vous décidez de dé-installer rEFInd puis de le réinstaller, il fabriquera alors automatiquement ce fichier.
La structure de boot est aussi chiffrée pour plus de sécurité.
Il suffit de choisir l'Ubuntu en question pour booter. La fonctionnalité "RESUME" sera automatiquement ajoutée.
Lorsqu'il y a des problèmes de démarrage, il est possible de modifier dynamiquement la première ligne.
En effet dans certains cas, il peut être nécessaire d'ajouter manuellement l'option ou les options manquantes. Cette possibilité concerne en particulier ces options.
Pour cela, la première fois, il est nécessaire de modifier la première ligne qui est proposée pour mettre l'option en début de ligne.
Par la suite, ce serait pénible de toujours refaire cette même manipulation. Pour éviter cela, il est possible de mémoriser l'option voulue de la façon suivante :
Lorsque l'instance est opérationnelle, utilisez votre éditeur de texte favori pour modifier le fichier /boot/refind_linux.conf et ajoutez ce qui manque au début de la première ligne. Par exemple :
"Boot with standard options" "ro nomodeset modprobe.blacklist=nouveau acpi=off root=UUID=7d0360b4-ed6a-4617-9f5d-30890418ef82"
Utilisez votre éditeur de texte favori pour modifier le fichier /boot/refind_linux.conf, et ajoutez une ligne pour simplifier le choix du démarrage en mode recovery, par exemple :
"Boot en mode recovery" "recovery nomodeset ro root=UUID=7d0360b4-ed6a-4617-9f5d-30890418ef82"
L'option de démarrage en mode recovery n'existe pas de façon standard. Cependant il est possible de l'utiliser. Voici la procédure à suivre :
Aux dernières nouvelles, le concepteur va livrer l'option recovery.
Cet exemple permet booter le 8ème OS de la liste, sauf entre 8 heures et midi puis entre 14 heures et 18 heures 30 où cela bootera Windows. Entre midi et 14 heures, cela bootera le premier de la liste et entre 21 heures 45 et 23 heures 15, cela bootera le dernier qui avait été lancé auparavant.
default_selection 8 default_selection Microsoft 8:00 12:00 default_selection 1 12:00 14:00 default_selection Microsoft 14:00 18:30 default_selection + 21:45 23:15
menuentry "Installer Windows edition familliale " {
icon \EFI\refind\icons\os_win.png
volume "INSTWIN1607"
ostype "Windows"
loader \EFI\Boot\bootx64.efi
}
menuentry "ubuntu" {
icon /EFI/refind/icons/os_linuxmint.png
volume ubuntu1904
loader /boot/vmlinuz-5.0.0-13-generic
initrd /boot/initrd.img-5.0.0-13-generic
options "root=UUID=241d5f72-5e3a-44db-8715-b11b2cf78dd2 rw "
}
Dans ce contexte, il faut positionner l'option use_nvram sur false, off ou 0 (seulement disponible à partir de la version 19.04).
L'installation de refind de façon classique a été faite. Cependant des problèmes persistent car le bios EFI est bridé pour ne lancer que windows.
La solution classique est de se faire passer pour Windows. De déplacer le fichier de boot de Windows et de prendre en charge le lancement de ce nouveau fichier.
menuentry "Windows 10" {
icon \EFI\refind\icons\os_win.png
loader \EFI\Microsoft\Boot\bkbootmgfw.efi
}
Lorsque Windows fera une grosse mise à jour, il se remettra prioritaire. Il faudra de nouveau rectifier en refaisant uniquement les deux dernières commandes.
Il faut activer l'option permettant de le faire.
Voir une description en anglais dans le paragraphe Troubleshooting de cette documentation (pour ArchLinux).
Une nouvelle installation d'Ubuntu, faite sans précaution, installerait automatiquement son logiciel de boot (GRUB). Cela est inutile et même gênant car il se mettrait prioritaire. Pour éviter cet effet indésirable, il ne faut pas lancer l'installation d'Ubuntu en cliquant sur l'icône qui symbolise l'installation.
L'installation sera simplement lancée avec la commande suivante:
ubiquity -b
L'option indique de ne pas installer de bootloader.
L'ordinateur dispose de rEFInd et d'Ubuntu. Vous désirez installer Windows ou une nouvelle version de Windows. Rien de plus simple.
Sous Ubuntu :
Sous rEFInd : Choisir le fichier de boot de la partition NTFS. Il ne reste plus qu'à suivre les consignes d'installation de cet OS.